1. Field of the Invention
The present invention relates generally to the field of computing technology, and more particularly, to methods and structures for processing code associated with option ROM BIOS images.
2. Description of the Related Art
As is well known, during a computer system initialization routine, commonly referred to as a boot sequence, a variety of diagnostics are performed to ascertain the availability and status of hardware devices and ensure proper operation of components. For example, during initialization, a Basic Input Output System (BIOS) executes a boot program, which invokes a series of system checks to ascertain the location, number and identity of various devices connected to the computer system. The processing components may be a variety of host adapter cards including, by way of example only, a video display adapter, a network adapter, a Small Computer System Interface (SCSI) adapter, or other similar devices. Further, these host adapter cards may either be non-processor based, such as some SCSI and Redundant Array of Inexpensive Disks (RAID) controllers, or may be processor based, such as some high end or low end RAID controllers.
In any event, each of these processing components has an associated option Read Only Memory (ROM) BIOS chip, each of which includes corresponding program instructions known as the option ROM BIOS (hereinafter referred to as a “BIOS image.”) The BIOS image residing on each of the host adapter cards is ultimately read and placed in the system memory. Typically, the size of an exemplary BIOS image is 32K. However, as the need for more functionality in the initialization process continues to grow, so does the size of the BIOS image.
The increase in size of the BIOS image is specifically more pronounced where a native full extensible firmware interface (“EFI”) architecture for option ROMs is implemented. FIG. 1 is a simplified, schematic view of an exemplary computer system implementing the EFI architecture, in accordance with the prior art. The computer system 100 includes a system BIOS 116, a host adapter card 102, and a plurality of hard disk drives 104a through 104c. The system BIOS 116 is connected to a PCI bus 114 while the host adapter card 106 is connected to the PCI bus 114 using a plug 110. The host adapter card 102 is coupled to the plurality of hard disk drives 104a–c wherein the hard disk drives 104a–c are connected consecutively.
The option ROM BIOS chip 106 includes the EFI component 108, which is an interface between the computer system 100 operating system and the platform firmware. The EFI component 108 provides a standard environment for booting the computer operating system and running pre-boot applications. In this manner, the EFI component 108 reduces existing compatibility issues between the system BIOS of different computer systems. The EFI component 108 is implemented in itanium™ architecture-based computer systems that provide firmware interface to boot Instruction Set Architecture (“IA-64”) computer system. The EFI component 108 files are written and compiled implementing the C language and are maintained in very large libraries. As a consequence, the host adapter card 102 must be capable of supporting a BIOS image that exceeds one megabyte.
For instance, to benefit the functionality of the EFI architecture, the option ROM BIOS Chip 106, typically capable of storing a 32K BIOS image, should be replaced. That is, the option ROM BIOS chip 106 should be replaced by a chip capable of supporting a size in MB. In fact, in one example, the replacement chip should be capable of supporting a size of about 8 MBs.
Plainly stated, the file sizes continue to grow, thus requiring larger and larger chips to store code (e.g., the EFI code or any other code). Of course, the larger size of the chips negatively effects the cost of the entire computer system, as the larger are the chips, the more costly the entire computer system will be.
In view of the foregoing, there is a need for a new methodology and apparatus for reducing compatibility issues between system BIOS of different computer systems.